﻿using System.Text;

namespace StockAnalyzer.HaoStock
{
    /// <summary>
    /// 用于制定计划，包括买入价格、卖出价格和股票数量。
    /// 在初始化时只填写计划买入价格和数据，其他值都是默认。
    /// </summary>
    public class StockTradePlan
    {
        /// <summary>
        /// 资金仓位，使用百分比表示，意思为相对于总本金的百分比。
        /// 如10.00元时，仓位是0.9，则只使用10%的资金购买当前价格的股票。
        /// </summary>
        public double target_level = 0;
        public double target_buy_price = 0;
        public double target_sell_price = 0;




        public StockTradePlan()
        {
            target_level = 0;
            target_buy_price = 0;
        }



        public static List<StockTradePlan> MakePlans(double in_price, double out_price, double interest_rate, double p1=0.02, int count=20)
        {
            List<StockTradePlan> plans = new List<StockTradePlan>();
            double p2 = 1.0 / count;
            for (int i = 0; i <= count; i++)
            {
                StockTradePlan plan = new StockTradePlan();
                plan.target_buy_price = (1 - i * p1) * in_price;
                plan.target_sell_price = plan.target_buy_price * (1.0 + interest_rate);
                plan.target_sell_price = plan.target_sell_price > out_price ? out_price : plan.target_sell_price;
                plan.target_level = 1 - p2 * i;
                plans.Add(plan);
            }
            return plans;
        }


        public override string ToString()
        {
            return $"{target_buy_price,6:N2} {target_level:N2} {target_sell_price,6:N2}";
        }

    }
}
